
#ifndef __CE_SCENE_LIGHT_H__
#define __CE_SCENE_LIGHT_H__

#include <export.h>
#include <vector>

class ceEntityNode;
class ceLight;

/**
 * \addtogroup scene
 * @{
 */

/**
 * @brief Grouping a light and the lit entities together.
 */
class CE_API ceLightObject
{
private:
  ceLight*       _light;

  bool           _castShadow;

  std::vector<ceEntityNode*> _litNodes;

public:
  ceLightObject(ceLight* light = 0);

  void SetLight (ceLight* light);
  ceLight* GetLight ();
  const ceLight* GetLight () const;

  void SetCastShadow(bool castShadow);
  bool CastsShadow () const;

  std::vector<ceEntityNode*>& GetLitNodes ();
  void AddNode (ceEntityNode* node);

  bool MarkRenderNodes (bool render);
};

/** @} */

#endif /* ! __CE_SCENE_LIGHT_H__ */

